package edu.cmu.cs211.bacon.util;

import java.util.List;

/**
 * A undirected graph MST interface.
 * 
 * V and E are the vertex and edge types for the graph that we will be searching.
 * That is, this function returns a list of edges (List<E>), and takes a graph.
 */
public interface GraphMST {
	/**
	 * 
	 * @param <V> The type for the vertices in the graph.
	 * @param <E> The type for edges in the graph.
	 * @param g The graph of which to get the minimum spanning tree
	 * @return The list of edges in the MST, or null if no MST exists.
	 */
	public <V,E extends Edge<V>> List<E> spanningTree(Graph<V,E> g);	
	
}